In [1]:
%pylab inline
import matplotlib.pyplot as plt
from ipywidgets import *  # az interaktivitásért felelős csomag
Populating the interactive namespace from numpy and matplotlib

Topological defects, vortices in XY model

In [2]:
# Az abra kimentesehez az alabbiakat a plt.show()  ele kell tenni!!! 

#savefig('fig_rainbow_p2_1ray.pdf');  # Abra kimentese
#savefig('fig_rainbow_p2_1ray.eps');  # Abra kimentese

# Abra es fontmeretek
xfig_meret= 6   #    12 nagy abrahoz
yfig_meret= 6    #   12 nagy abrahoz
xyticks_meret= 15  #  20 nagy abrahoz
xylabel_meret= 15  #  30 nagy abrahoz
legend_meret= 21   #  30 nagy abrahoz
In [3]:
y=1
x=-1
arctan2(y,x)*180/pi
Out[3]:
135.0
In [4]:
def rajz_vortex(q,fi0,xysize,Np):
    fi0fok = 180/pi*fi0
    
    #mintavételezési pontok legyártása  
    x,y = meshgrid(linspace(xysize,-xysize,Np),linspace(xysize,-xysize,Np)) 
    
    u = cos(fi0+q*arctan2(y,x)) 
    v = sin(fi0+q*arctan2(y,x))
    
    figsize(xfig_meret,xfig_meret)

    #plot(x, y, marker='.', color='k', linestyle='none')
    quiver(x,y,u,v);

    cim = "q =" + str(q) + ", fi0 = "+ str(fi0fok)
    title(cim,fontsize=xylabel_meret);
In [5]:
def rajz_vortex_dipol(q,fi0,d,xysize,Np):
    fi0fok = 180/pi*fi0
    
    #mintavételezési pontok legyártása
    
    x,y = meshgrid(linspace(xysize,-xysize,Np),linspace(xysize,-xysize,Np)) 

    u = cos(fi0-q*arctan2(y,x-d/2) + q*arctan2(y,x+d/2))
    v = sin(fi0-q*arctan2(y,x-d/2) + q*arctan2(y,x+d/2))
    
    #figsize(xfig_meret,xfig_meret)

    quiver(x,y,u,v);

    cim = "dipol, q =" + str(q) + ", fi0 = "+ str(fi0fok) + ", x1=" +str(-d/2) +\
     ", x2=" +str(d/2)
    title(cim,fontsize=xylabel_meret);
    
    
   
    return(u,v)
  

Different types of vortices:

In [6]:
q = 1
fi0 = 0*pi/2;
fi0fok = 180/pi*fi0

xysize=8;
Np =10;

rajz_vortex(q,fi0,xysize,Np);
In [7]:
q = 1
fi0 = 0;
fi0fok = 180/pi*fi0

xysize=8;
Np = 10;

xfig=8
figsize(3*xfig_meret,xfig_meret)

subplot(1,3,1)
rajz_vortex(q,fi0,xysize,Np);

fi0 = pi/2;
fi0fok = 180/pi*fi0

subplot(1,3,2)
rajz_vortex(q,fi0,xysize,Np);

fi0 = pi;
fi0fok = 180/pi*fi0

subplot(1,3,3)
rajz_vortex(q,fi0,xysize,Np);
In [8]:
q = -1
fi0 = 0;
fi0fok = 180/pi*fi0

xysize=1;
Np = 10;

figsize(3*xfig_meret,xfig_meret)

subplot(1,3,1)
rajz_vortex(q,fi0,xysize,Np);

fi0 = pi/2;
fi0fok = 180/pi*fi0

subplot(1,3,2)
rajz_vortex(q,fi0,xysize,Np);

fi0 = pi;
fi0fok = 180/pi*fi0

subplot(1,3,3)
rajz_vortex(q,fi0,xysize,Np);
In [9]:
q = -2
fi0 = 0;
fi0fok = 180/pi*fi0

xysize=1;
Np = 15;

figsize(3*xfig_meret,xfig_meret)

subplot(1,3,1)
rajz_vortex(q,fi0,xysize,Np);

fi0 = pi/2;
fi0fok = 180/pi*fi0

subplot(1,3,2)
rajz_vortex(q,fi0,xysize,Np);

fi0 = pi;
fi0fok = 180/pi*fi0

subplot(1,3,3)
rajz_vortex(q,fi0,xysize,Np);
In [10]:
interact(rajz_vortex,
               q=IntSlider(min=-6.,max=6,step=1,value=1,description='q = '),
               Np=IntSlider(min=10.,max=100,step=10,value=15,description='Np = '),
               xysize=FloatSlider(min=4.,max=20,step=1,value=7,description='xysize = '),
               fi0 =FloatSlider(min=-pi,max=pi,step=2*pi/8,value=pi/2,description='fi0 = '));

Vortex dipoles:

In [11]:
meret = 6;
Np = 15;

q = 1
fi0 = pi/2;
fi0fok = 180/pi*fi0
d=6

figsize(16,8)

subplot(1,2,1)
rajz_vortex_dipol(q,fi0,d,meret,Np);

fi0 = 0*pi/2;
fi0fok = 180/pi*fi0

subplot(1,2,2)
rajz_vortex_dipol(q,fi0,d,meret,Np);
In [12]:
meret = 6;
Np = 20;

q = 2
fi0 = 1*pi/2;
fi0fok = 180/pi*fi0
d=4

figsize(8,8)

rajz_vortex_dipol(q,fi0,d,meret,Np);
In [13]:
meret = 6;
Np = 15;

q = 2
fi0 = pi/2;
fi0fok = 180/pi*fi0
d=4

figsize(16,8)

subplot(1,2,1)
rajz_vortex_dipol(q,fi0,d,meret,Np);

fi0 = 0*pi/2;
fi0fok = 180/pi*fi0

subplot(1,2,2)
rajz_vortex_dipol(q,fi0,d,meret,Np);
In [ ]: